package com.jl.utils;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@Data
@Accessors(chain = true)
public class PageBean<T> {

    /**
     * 当前页
     */
    private long current = 1;

    /**
     * 显示行数
     */
    private long size = 10;

    /**
     * 总数
     */
    protected long total = 0;

    /**
     * 排序
     */
    private List<OrderItemBean> orders = new ArrayList<>();

    /**
     * 查询数据列表
     */
    protected List<T> records = Collections.emptyList();

    /**
     * 自动优化 COUNT SQL
     */
    protected boolean optimizeCountSql = true;

    /**
     * 是否进行 count 查询
     */
    protected boolean searchCount = true;

    @Data
    @Accessors(chain = true)
    public static class OrderItemBean {

        /**
         * 需要进行排序的字段
         */
        private String column;

        /**
         * 是否正序排列，默认 true
         */
        private boolean asc = true;
    }

}
